package com.pig4cloud.pig.iot.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;

/**
 * 物联网设备信息
 *
 * @author lty
 * @date 2024-11-05 10:08:08
 */
@Data
@TableName("iot_device")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "物联网设备信息")
public class IotDeviceEntity extends Model<IotDeviceEntity> {


	/**
	* 主键ID
	*/
    @TableId(type = IdType.ASSIGN_ID)
    @Schema(description="主键ID")
    private Long id;

	/**
	* 设备名称
	*/
    @Schema(description="设备名称")
    private String deviceName;

	/**
	* 设备编号
	*/
    @Schema(description="设备编号")
    private String deviceCode;

	/**
	* 设备图片路径
	*/
    @Schema(description="设备图片路径")
    private String deviceImg;

	/**
	* 设备在线状态（1在线、0不在线，默认0）
	*/
    @Schema(description="设备在线状态（1在线、0不在线，默认0）")
    private String deviceOnlineStatus;

	/**
	* 设备所在地址
	*/
    @Schema(description="设备所在地址")
    private String deviceAddress;

	/**
	* 设备所属设备分类ID
	*/
    @Schema(description="设备所属设备分类ID")
    private Long deviceCategoryId;

	/**
	* 绑定状态（是否被使用 1表示已绑定 默认0）
	*/
    @Schema(description="绑定状态（是否被使用 1表示已绑定 默认0）")
    private String deviceBindStatus;

	/**
	* 设备信息备注
	*/
    @Schema(description="设备信息备注")
    private String deviceRemark;

	/**
	* 设备额外必须字段（不同类型物联网设备必须字段可能不同，用这个当作补充）
	*/
    @Schema(description="设备额外必须字段（不同类型物联网设备必须字段可能不同，用这个当作补充）")
    private String deviceExtraJsonFields;

	/**
	* 创建者
	*/
	@TableField(fill = FieldFill.INSERT)
    @Schema(description="创建者")
    private String createBy;

	/**
	* 创建时间
	*/
	@TableField(fill = FieldFill.INSERT)
    @Schema(description="创建时间")
    private LocalDateTime createTime;

	/**
	* 更新者
	*/
	@TableField(fill = FieldFill.INSERT_UPDATE)
    @Schema(description="更新者")
    private String updateBy;

	/**
	* 更新时间
	*/
	@TableField(fill = FieldFill.INSERT_UPDATE)
    @Schema(description="更新时间")
    private LocalDateTime updateTime;

	/**
	* 删除标志（0代表存在 1代表删除）
	*/
    @TableLogic
		@TableField(fill = FieldFill.INSERT)
    @Schema(description="删除标志（0代表存在 1代表删除）")
    private String delFlag;
}